<?php
declare (strict_types = 1);

namespace app\patient\controller;
use app\Db2;

class Login{
    /**
     * @Notes: 患者端小程序登录
     * @Interface login
     * @author: Shaco
     * @Time: 2022/8/24-22:53
     */
    // public function wxAppLogin($app_openid){
    //     // $app_openid = input('app_openid'); // 小程序openid

    //     // if(!$app_openid || $app_openid == 'undefined') return rejson(0, '参数错误');

    //     // $headimg = input('headimg');  // 微信头像



    //     return $id ? rejson(200, '保存成功', ['token' => login_token($id)]) : rejson(0, '登录失败');

    // }
    


    public function login(){
        $APP_ID = 'wx485998504983c8a1';
        $APP_SECRET = 'b40b8074d6c8013496d0d457a7049b67';
        $GRANT_TYPE = 'authorization_code';
        $WX_LOGIN_URL = 'https://api.weixin.qq.com/sns/jscode2session';
        $code = input('code');

        if(!$code || $code == 'undefined') return rejson(302, '参数缺失');

        $params = [
            'appid'      => $APP_ID,
            'secret'     => $APP_SECRET,
            'js_code'    => $code,
            'grant_type' => $GRANT_TYPE,
        ];

        // 拼接请求地址
        $url = $WX_LOGIN_URL . '?' . http_build_query($params);
        // print_r($url);die;
        $result = file_get_contents($url);
        $result = json_decode($result, true);
        
        // print_r($result);die;

        if(!isset($result['errcode']&&$result['openid'])){

            $data = ['wx_app_openid' => $result['openid']];

            $user = Db2::get_data('user', [['wx_app_openid' => $app_openid]]);

            // 有就更新
            if($user){
                // Db2::update_data('user', [['id' => $user['id']]], $data);
                $id = $user['id'];
            }else{
                // 没有就注册
                $id = Db2::insert_data('user', $data);
            }


            return $id ? rejson(200, '登录成功', ['token' => login_token($id)]) : rejson(0, '登录失败');
        }else{
            return rejson(0,'登录失败');
        }

    }
}